Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

640
Views
M1 Mac - Error de arquitectura incorrecta de GDAL [Django]

Estoy tratando de poner en marcha un proyecto Django, que depende de la biblioteca GDAL. Estoy trabajando en un Mac basado en M1.

Siguiendo las instrucciones en los documentos oficiales de Django , instalé los paquetes necesarios a través de brew

 $ brew install postgresql $ brew install postgis $ brew install gdal $ brew install libgeoip

gdalinfo --version funciona bien y muestra la versión como 3.3.1

gdal-config --libs devuelve esta ruta: -L/opt/homebrew/Cellar/gdal/3.3.1_2/lib -lgdal

también se coloca un enlace simbólico en el directorio lib de homebrew, que está en mi variable env de ruta.

Cuando trato de ejecutar django sin especificar la ruta a la biblioteca gdal, se queja de que no puede encontrar el paquete GDAL (aunque se puede acceder a la biblioteca, ya que hay un enlace simbólico disponible a través de la variable path env).

Cuando trato de especificar la ruta a la biblioteca GDAL usando GDAL_LIBRARY_PATH , aparece este error:

 OSError: dlopen(/opt/homebrew/Cellar/gdal/3.3.1_2/lib/libgdal.dylib, 6): no suitable image found. Did find: /opt/homebrew/Cellar/gdal/3.3.1_2/lib/libgdal.dylib: mach-o, but wrong architecture /opt/homebrew/Cellar/gdal/3.3.1_2/lib/libgdal.29.dylib: mach-o, but wrong architecture

PD: ya he visto esta respuesta , pero no ayudó.

¿No es extraño cuando trato de ejecutar gdalinfo, funciona bien, pero cuando django intenta ejecutarlo, me arroja este error? ¿Qué estoy haciendo mal?

over 4 years ago · Santiago Trujillo
4 answers
Answer question

0

¡Intenta usar la nueva versión arm de python!

 brew install --cask miniforge conda init zsh conda activate conda install numpy scipy scikit-learn
over 4 years ago · Santiago Trujillo Report

0

Es probable que GDAL y Python estén compilados para diferentes arquitecturas de CPU. En un sistema M1, el sistema operativo puede ejecutar binarios arm64 nativos y x86_64 emulados.

Para verificar: ejecute file /opt/homebrew/Cellar/gdal/3.3.1_2/lib/libgdal.dylib y file $(which python3) , que debería mostrar las arquitecturas de CPU admitidas para ambos.

Si los dos no coinciden, tendrá que reinstalar uno de ellos. Tenga en cuenta que si reinstala Python, también debe reinstalar todos los paquetes de Python con extensiones C.

over 4 years ago · Santiago Trujillo Report

0

Si no necesita que esto se ejecute de forma nativa en el M1, considere usar una máquina virtual Linux.

Mi solución definitiva a este problema fue crear una VM de Ubuntu usando Multipass de Canonical en mi Mac M1, luego instalar postgresql, postgis y todas las dependencias relevantes, incluido GDAL, como se haría con Linux.

https://multipass.run/

Usé lo siguiente para instalar postgres y postgis:

 sudo apt-get install libpq-dev #required for psycop2-binary installation sudo sh -c 'echo "deb http://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg main" > /etc/apt/sources.list.d/pgdg.list' wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add - sudo apt-get -y install postgresql-13 #or other version number sudo apt install postgis postgresql-13-postgis-3 sudo -i -u postgres createuser yourusername createdb postgis_db -O yourusername #create your db psql -d postgis_db CREATE EXTENSION postgis; #make sure these are all installed: sudo apt-get install binutils libproj-dev sudo apt-get install gdal-bin sudo apt-get install libgeos++ sudo apt-get install proj-bin

Hago SSH en la VM de ubuntu a través de VSCode y desarrollo django como de costumbre. Hay un buen artículo sobre la configuración de Multipass aquí.

No he tenido problemas con esta configuración en M1. ACTUALIZACIÓN: a partir del 10/01/2022, hay algunos problemas con el firewall de MacOS en Monterey 12.1 que no funciona bien con Multipass. Es un problema abierto en GitHub y Canonical está trabajando en ello.

over 4 years ago · Santiago Trujillo Report

0

Me encontré con el mismo problema, en mi caso se resolvió agregando GDAL_LIBRARY_PATH en settings.py, pero también GEOS_LIBRARY_PATH

 GDAL_LIBRARY_PATH = '/opt/homebrew/Cellar/gdal/3.4.1_1/lib/libgdal.dylib' GEOS_LIBRARY_PATH = '/opt/homebrew/Cellar/geos/3.10.2/lib/libgeos_c.1.16.0.dylib'
over 4 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!